# 导包
import time
from pprint import pprint
from selenium import webdriver
from selenium.webdriver.common.by import By


class TestCase:
    def __init__(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.driver.get('https://www.baidu.com')

    def id(self):
        # 通过id定位元素By.ID
        kw = self.driver.find_element(By.ID, 'kw')
        # 获取源代码
        print(kw.get_attribute('outerHTML'))

        su = self.driver.find_element(By.ID, 'su')
        print(su.get_attribute('outerHTML'))

    def class_name(self):
        # 通过class定位By.CLASS_NAME
        time.sleep(3)
        ipt = self.driver.find_element(By.CLASS_NAME, 's_ipt')
        print(ipt.get_attribute('outerHTML'))

    def link_text(self):
        # 通过链接文本定位
        kw = self.driver.find_element(By.LINK_TEXT, '新闻')
        print(kw.get_attribute('outerHTML'))

    def partial_link_text(self):
        # 通过部分链接文本定位
        kw = self.driver.find_element(By.PARTIAL_LINK_TEXT, 'hao')
        print(kw.get_attribute('outerHTML'))

    def tag_name(self):
        # 通过标签名定位,定位到页面的第一个标签
        # kw = self.driver.find_element(By.TAG_NAME, 'input')
        # print(kw.get_attribute('outerHTML'))

        # 定位到页面所有的标签,返回的是一个列表
        su = self.driver.find_elements(By.TAG_NAME, 'input')
        print(len(su))
        # 格式化输出
        pprint(su)
        print(su[7].get_attribute('outerHTML'))

    def name(self):
        # 通过name定位元素
        wd = self.driver.find_element(By.NAME, 'wd')
        print(wd.get_attribute('outerHTML'))

    def quit(self):
        self.driver.quit()


if __name__ == '__main__':
    case = TestCase()
    # case.id()
    case.class_name()
    # case.link_text()
    # case.partial_link_text()
    # case.tag_name()
    # case.name()
    case.quit()
